package com.ruoyi.vote.common.utils;

import com.ruoyi.vote.common.constants.VoteConstants;

public class KeyUtils {

    /**
     * 活动选手信息集合 Set
     * @param eventId 活动ID
     */
    public static String formatInfoSignKey(String eventId) {
        return String.format(VoteConstants.INFO_SIGN_KEY_PREFIX, eventId);
    }

    /**
     * 活动对象KEY
     * @param eventId 活动ID
     */
    public static String formatInfoEventKey(String eventId) {
        return String.format(VoteConstants.INFO_EVENT_KEY_PREFIX, eventId);
    }

    /**
     * 活动票数KEY
     * @param eventId 活动ID
     */
    public static String formatNumberPool(String eventId) {
        return String.format(VoteConstants.VOTE_NUMBER_POOL, eventId);
    }

    /**
     * 活动总票数
     * @param eventId 活动ID
     */
    public static String formatEventTotalKey(String eventId) {
        return String.format(VoteConstants.EVENT_TOTAL_KEY_PREFIX, eventId);
    }

    /**
     * 活动热度
     * @param eventId   活动ID
     */
    public static String formatEventWelcomeKey(String eventId) {
        return String.format(VoteConstants.EVENT_WELCOME_KEY_PREFIX, eventId);
    }

    /**
     * 活动选手票数
     * @param eventId       活动ID
     * @param contestantId  参与者编号
     */
    public static String formatAcsKey(String eventId,String contestantId) {
        return String.format(VoteConstants.ACS_KEY_PREFIX, eventId,contestantId);
    }

    /**
     * 排名KEY
     * @param eventId 活动ID
     * @param contestantId  参与者ID
     */
    public static String formatRankKey(String eventId,String contestantId) {
        return String.format(VoteConstants.RANK_KEY_PREFIX, eventId,contestantId);
    }

    /**
     * 用户活动投票记录
     * @param userId    投票人ID
     * @param time      时间
     * @param eventId   活动ID
     * @return
     */
    public static String formatLikeEventKey(String userId,String time,String eventId) {
        return String.format(VoteConstants.LIKE_EVENT_KEY_PREFIX, userId,time,eventId);
    }

    /**
     * 用户活动投票选手记录
     * @param userId    投票人ID
     * @param eventId   活动ID
     * @param time      时间
     * @param contestantId      选手ID
     * @return
     */
    public static String formatLikeSignKey(String userId,String eventId,String time, String contestantId) {
        return String.format(VoteConstants.LIKE_SIGN_KEY_PREFIX, userId,eventId,time,contestantId);
    }

    /**
     * 活动开始KEy
     * @param eventId   活动ID
     * @return
     */
    public static String formatStartNotice(Long eventId) {
        return VoteConstants.VOTE_NOTICE_START+eventId;
    }

    /**
     * 活动结束KEY
     * @param eventId   活动ID
     * @return
     */
    public static String formatStopNotice(Long eventId) {
        return VoteConstants.VOTE_NOTICE_STOP+eventId;
    }

}
